// // Copyright (c) 2009 All Right Reserved // // vl // // 2009-01-01 // Contains ... using System; using JetBrains.Annotations; namespace LargoCommon.Music { /// /// Musical Engine. /// [Serializable] public sealed class MusicalRules { #region Properties /// /// Gets or sets a value indicating whether [individualize melodic voices]. /// /// /// True if [individualize melodic voices]; otherwise, false. /// public bool IndividualizeMelodicVoices { get; set; } /// /// Gets RuleHarmonicCover. /// /// Property description. public float RuleHarmonicCover { get; private set; } /// /// Gets RuleFreeBand. /// /// Property description. public float RuleFreeBand { get; private set; } /// /// Gets RuleImpulseCollisions. /// /// Property description. public float RuleImpulseCollisions { get; private set; } /// /// Gets RuleAmbitChange. /// /// General musical property. public float RuleAmbitChange { get; private set; } /// /// Gets RuleMelodicCollisions. /// /// General musical property. public float RuleMelodicCollisions { get; private set; } /// /// Gets RuleSimpleHarmony. /// /// Property description. public float RuleSimpleHarmony { get; private set; } #endregion #region Private properties /// /// Gets or sets name of the rule-set. /// /// Property description. // ReSharper disable once UnusedAutoPropertyAccessor.Local private string Name { [UsedImplicitly] get; set; } /* Unused musical rules /// /// Gets or sets RuleParallelConnections. /// /// Property description. //// private float RuleParallelConnections { [UsedImplicitly] get; set; } /// /// Gets or sets RuleMusicalImpulse. /// /// Property description. //// private float RuleMusicalImpulse { [UsedImplicitly] get; set; } */ /// /// Gets or sets RandomEffect. /// /// Property description. // ReSharper disable once UnusedAutoPropertyAccessor.Local private float RandomEffect { [UsedImplicitly] get; set; } #endregion #region Public static methods /// /// Gets NewStandardEngine. /// /// Returns value. public static MusicalRules NewStandardMusicalRules() { var me = new MusicalRules { Name = "Standard", RandomEffect = 0, RuleFreeBand = 1, RuleHarmonicCover = 1, RuleImpulseCollisions = 1, RuleMelodicCollisions = 1, RuleAmbitChange = 0, //// RuleParallelConnections = 1, RuleSimpleHarmony = 0 //// RuleMusicalImpulse = 0 }; return me; } /// /// Gets NewStandardEngine. /// /// Returns value. public static MusicalRules NewSimpleHarmonicMusicalRules() { var me = new MusicalRules { Name = "Simple Harmony", RandomEffect = 0, RuleFreeBand = 1, RuleHarmonicCover = 0, RuleImpulseCollisions = 0, RuleMelodicCollisions = 0, RuleAmbitChange = 0, //// RuleParallelConnections = 0, RuleSimpleHarmony = 1 //// RuleMusicalImpulse = 0 }; return me; } /// /// Gets NewStandardEngine. /// /// Returns value. public static MusicalRules NewMusicalImpulseRules() { var me = new MusicalRules { Name = "Simple Harmony", RandomEffect = 0, RuleFreeBand = 1, RuleHarmonicCover = 1, RuleImpulseCollisions = 0, RuleMelodicCollisions = 0, RuleAmbitChange = 0, //// RuleParallelConnections = 0, RuleSimpleHarmony = 0 //// RuleMusicalImpulse = 1 }; return me; } #endregion } }